package com.start.autumn.vaildation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Inherited
@Target(ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface AntiShake {
    /**
     * 有效期要大于程序执行时间，否则请求还是可能会进来 默认：1
     */
    int expireTime() default 1;
    /**
     * 时间单位 默认：s
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;

    /**
     * 提示信息，可自定义
     */
    String info() default "Repeat the request, please try again later！";

    /**
     * 是否在业务完成后删除key 默认false
     */
    boolean delKey() default false;

    /**
     * 是否在抛出异常后取消幂等性校验
     */
    boolean exceptionDel() default false;

    /**
     * 是否做幂等处理 默认false
     */
    boolean isAntiShake() default false;
}
